home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / PointingPlugin.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  3KB  |  96 lines

  1. /*
  2.      File:        PointingPlugin.h
  3.  
  4.      Contains:    Interface for Pointer Family Plugins
  5.  
  6.      Version:    Technology:    Copland
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __POINTINGPLUGIN__
  19. #define __POINTINGPLUGIN__
  20.  
  21. #ifndef __NAMEREGISTRY__
  22. #include <NameRegistry.h>
  23. #endif
  24. #ifndef __POINTING__
  25. #include <Pointing.h>
  26. #endif
  27. #ifndef __TYPES__
  28. #include <Types.h>
  29. #endif
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34.  
  35. #if PRAGMA_IMPORT_SUPPORTED
  36. #pragma import on
  37. #endif
  38.  
  39. #if PRAGMA_ALIGN_SUPPORTED
  40. #pragma options align=mac68k
  41. #endif
  42.  
  43. #if FOR_SYSTEM8_PREEMPTIVE
  44. /**************** Calls Implemented By Plugins ****************/
  45. typedef OSStatus (*PTPluginValidateHardwarePtr)(RegEntryRef *device, Boolean *isMyDevice);
  46. typedef OSStatus (*PTPluginInitializePtr)(RegEntryRef *mouseRegistryEntryPtr, PTDeviceCapabilities *mouseCapabilities, PTDeviceIdentifier *mouseIdentification);
  47. typedef OSStatus (*PTPluginTerminatePtr)(void);
  48. typedef OSStatus (*PTPluginStartIOPtr)(void);
  49. typedef OSStatus (*PTPluginStopIOPtr)(void);
  50. typedef OSStatus (*PTPluginGetNextDataPtr)(PTData *theMouseData);
  51. typedef OSStatus (*PTPluginGetDeviceModesPtr)(ByteCount offset, ByteCount numBytes, PTDeviceModes *modes);
  52. typedef OSStatus (*PTPluginSetDeviceModesPtr)(ByteCount offset, ByteCount numBytes, PTDeviceModes *modes);
  53.  
  54. enum {
  55.     kCoplandPTPluginVersion        = 0x00000001
  56. };
  57.  
  58. struct PTPluginHeader {
  59.     UInt32                             version;                    /* version of the plugin interface*/
  60.     UInt32                             reserved1;
  61.     UInt32                             reserved2;
  62.     UInt32                             reserved3;
  63. };
  64. typedef struct PTPluginHeader PTPluginHeader;
  65.  
  66. struct PTDeviceDispatchTable {
  67.     PTPluginHeader                     header;
  68.     PTPluginValidateHardwarePtr     PTPluginValidateHardware;
  69.     PTPluginInitializePtr             PTPluginInitialize;
  70.     PTPluginTerminatePtr             PTPluginTerminate;
  71.     PTPluginStartIOPtr                 PTPluginStartIO;
  72.     PTPluginStopIOPtr                 PTPluginStopIO;
  73.     PTPluginGetNextDataPtr             PTPluginGetNextData;
  74.     PTPluginGetDeviceModesPtr         PTPluginGetDeviceModes;
  75.     PTPluginSetDeviceModesPtr         PTPluginSetDeviceModes;
  76. };
  77. typedef struct PTDeviceDispatchTable PTDeviceDispatchTable;
  78.  
  79. typedef PTDeviceDispatchTable *PTDeviceDispatchTablePtr;
  80. #endif
  81.  
  82. #if PRAGMA_ALIGN_SUPPORTED
  83. #pragma options align=reset
  84. #endif
  85.  
  86. #if PRAGMA_IMPORT_SUPPORTED
  87. #pragma import off
  88. #endif
  89.  
  90. #ifdef __cplusplus
  91. }
  92. #endif
  93.  
  94. #endif /* __POINTINGPLUGIN__ */
  95.  
  96.